#include <bits/stdc++.h>
using namespace std;
int main() {
  // select the min card greater than other
  // erase
  // ->
  // mutilset
  int n, m, r;
  cin >> n >> m >> r;
  vector<pair<int, int>> p1(n), p2(n);
  for (auto &[x, _] : p1) cin >> x;
  for (auto &[_, x] : p1) cin >> x;
  for (auto &[x, _] : p2) cin >> x;
  for (auto &[_, x] : p2) cin >> x;
  multiset<pair<int, int>> ms(p2.begin(), p2.end());
  while (n--) {
    int id;
    cin >> id;
    auto &card = p1[id - 1];
    auto iter = ms.upper_bound(card);
    if (iter != ms.end() && iter->first == card.first) {
      ms.erase(iter);
    }
  }
  cout << ms.size() << endl;
}